package com.yami.shop.personnft.common.dao;


import com.yami.shop.personnft.common.model.SubscribeRecord;

import java.util.List;
import java.util.Map;

/**
 * 申购记录Mapper接口
 *
 * @author zhangchaoqun
 * @date 2021-10-13
 */
public interface SubscribeRecordMapper
{
    /**
     * 查询申购记录
     *
     * @param id 申购记录主键
     * @return 申购记录
     */
    public SubscribeRecord selectSubscribeRecordById(String id);
    /**
     * 查询申购记录列表
     *
     * @param subscribeRecord 申购记录
     * @return 申购记录集合
     */
    public List<SubscribeRecord> selectSubscribeRecordList(SubscribeRecord subscribeRecord);


    /**
     * 认购记录不分页
     * @param record
     * @return
     */
    List<SubscribeRecord>list(SubscribeRecord record);
    /**
     * 新增申购记录
     *
     * @param subscribeRecord 申购记录
     * @return 结果
     */
    public int insertSubscribeRecord(SubscribeRecord subscribeRecord);

    /**
     * 修改申购记录
     *
     * @param subscribeRecord 申购记录
     * @return 结果
     */
    public int updateSubscribeRecord(SubscribeRecord subscribeRecord);

    /**
     * 修改申购记录
     *
     * @param subscribeRecord 申购记录
     * @return 结果
     */
    public int editByCardAndtraderCode(SubscribeRecord subscribeRecord);
    /**
     * 删除申购记录
     *
     * @param id 申购记录主键
     * @return 结果
     */
    public int deleteSubscribeRecordById(String id);

    /**
     * 申购汇总
     *
     * @param subscribeRecord
     * @return 汇总结果
     */
    public Map<String,Object> selectSubscribeRecordSum(SubscribeRecord subscribeRecord);

    /**
     * 批量删除申购记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSubscribeRecordByIds(String[] ids);



    /**
     * 批量修改申购记录
     *
     * @param subscribeRecordList 申购记录
     * @return 结果
     */
    public int editAll(List<SubscribeRecord> subscribeRecordList);




    public void cancelRecord(SubscribeRecord subscribeRecord);

    /**
     * 统计划拨货款费用
     */
    public Map<String,Object> getSubscribeRecordToTransfer(Integer batchId);

    /**
     * 统计划拨货款费用-恒生部分
     */
    public Map<String,Object> getSubscribeRecordToTransferHengsheng(Integer batchId);

    /**
     * 批量取消申购记录
     *
     * @param subscribeRecordList 申购记录
     * @return 结果
     */
    public int editCancelAll(List<SubscribeRecord> subscribeRecordList);

    /**
     * 根据交易商和卡查询是否已经有申请记录
     * @param subscribeRecord
     * @return
     */
    public  int  getIsHaveRecord(SubscribeRecord subscribeRecord);
}
